package com.garnier.android.lecteurrss;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Locale;

import com.garnier.android.lecteurrss.R;


import android.content.Context;
import android.graphics.Color;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;

/**
 * 
 * @author garnier d'apres le tuto de Thibault Kuprowski
 *
 */

public class ListArticleAdapter extends BaseAdapter {

	// les donnees a afficher
	private ArrayList<Article> articles;

	// * Le LayoutInflater permet de parser un layout XML et de 
	// * te transcoder en IHM Android. Pour respecter l'interface 
	// * BaseAdapter 

	private LayoutInflater inflater;

	public ListArticleAdapter(Context context,ArrayList<Article> articles) {
		inflater = LayoutInflater.from(context);
		this.articles = articles;

	}

	// * il nous faut surcharger la methode "getCount()". 
	// * Cette methode permet de connaitre le nombre d'items present 
	// * dans la liste. Dans notre cas, il faut donc renvoyer le nombre
	// * d'articles

	@Override
	public int getCount() {
		return articles.size();
	}


	// Permet de retourner un objet contenu dans la liste

	@Override
	public Object getItem(int index) {
		return articles.get(index);
	}

	@Override
	public long getItemId(int index) {
		return this.articles.get(index).getId();

	}


	// * Voici la partie la plus complexe de la classe

	@Override
	public View getView(int position, View convertView, ViewGroup parent){
		// * Le parametre "convertView" permet de recycler les elements 
		// * de notre liste. En effet, l'operation pour convertir un layout 
		// * XML en IHM standard est tres couteuse pour la plateforme Android. 
		// * On nous propose ici de reutiliser des occurences creees qui ne sont 
		// * plus affichees. Donc si ce parametre est "null" alors, il faut "inflater" 
		// * notre layout XML, sinon on le reutilise
		ArticleView fv;		

		if (convertView == null) {
			fv = new ArticleView();
			convertView = inflater.inflate(R.layout.feed_view, null);

			fv.creator = (TextView)convertView.findViewById(R.id.creator);			
			fv.title = (TextView)convertView.findViewById(R.id.title);
			fv.pubDate = (TextView)convertView.findViewById(R.id.pub_date);
			convertView.setTag(fv);

		} else {
			fv = (ArticleView) convertView.getTag();
		}					
		if(articles.get(position).getCreator()!=null){
			fv.creator.setText("Auteur : "+articles.get(position).getCreator());
			fv.creator.setTextColor(Color.RED);
		}
		fv.pubDate.setText("Date : "+articles.get(position).getPubDate());
		fv.pubDate.setTextColor(Color.GREEN);
		fv.title.setText("Titre : "+articles.get(position).getTitle());
		fv.title.setTextColor(Color.YELLOW);
		return convertView;
	}

}
